<!--错误日志统计分析-->

<script>
    window.location.hash="#errorStatistical";
</script>


<div style="margin-top: 20px">

    <div class="op">
    <div class="layui-form-item">
        <div class="layui-inline">
            <label class="layui-form-label">开始时间：</label>
            <div class="layui-input-inline">
                <input type="date" name="from" id="from" lay-verify="date" placeholder="yyyy-MM-dd"
                       autocomplete="off" class="layui-input">
            </div>
        </div>
        <div class="layui-inline" style="margin-left: 0px">
            <label class="layui-form-label">结束时间：</label>
            <div class="layui-input-inline">
                <input type="date" name="to" id="to" lay-verify="date" placeholder="yyyy-MM-dd"
                       autocomplete="off" class="layui-input">
            </div>
        </div>
        <div class="layui-inline">
            <label class="layui-form-label">用户名：</label>
            <div class="layui-input-inline">
                <input type="text" name="username" id="username" maxlength="16" lay-verify="title" autocomplete="off"
                       placeholder="请输入用户名" class="layui-input">
            </div>
        </div>
        <div class="layui-inline">
            <label class="layui-form-label">报错模块：</label>
            <div class="layui-input-inline" style="width: 100px">
                <select id="moduleType" class="mySelect" style="width: 110px">
                    <option value=""></option>
                    <option value="0">系统登陆模块</option>
                    <option value="1">操作员模块</option>
                    <option value="2">业务审计员模块</option>
                    <option value="3">系统审计员模块</option>
                    <option value="4">系统管理员模块</option>
                </select>
            </div>
        </div>
        <button class="layui-btn layui-btn-normal" id="eQueryBtn"><i class="fa fa-search"></i>&nbsp;查询</button>

    </div>
</div>
    <!-- 为 ECharts 准备一个具备大小（宽高）的 DOM -->
    <div id="myArea" style="width: 1400px;height:650px;margin: 40px auto"></div>
</div>




<script type="text/javascript">
    var myChart = null;

    var dataInfo={
        fromTime:"",
        toTime:"",
        moduleType:"",
        name:""
    };

    initChart();
    getStatisticalData();
    
    /**
     * 统计按钮时间
     * */
    $("#eQueryBtn").live("click",function () {
        dataInfo.name=$("#username").val();
        dataInfo.fromTime=$("#from").val();
        dataInfo.toTime=$("#to").val();
        dataInfo.moduleType=$("#moduleType").val();

        //用户名处理
        if( dataInfo.name.trim()!="" && !checkLogUsername(dataInfo.name)){
            alert("用户名不能超过16位，且不包含除出下划线和减号以外的特殊字符");
            $("#username").val("");
            return;
        }
        //时间处理
        if(!isNull(dataInfo.fromTime)&&!isNull(dataInfo.toTime)) {
            if (compareFromAndTo(dataInfo.fromTime ,dataInfo.toTime)){
                dataInfo.fromTime = dataInfo.fromTime .replace(/-/g, "/") + " 00:00:00";
                dataInfo.toTime = dataInfo.toTime.replace(/-/g, "/") + " 23:59:59";
            }else {
                alert("时间区间先后存在问题!");
            }
        }else if(!isNull(dataInfo.fromTime )){
            dataInfo.fromTime  = dataInfo.fromTime .replace(/-/g, "/") + " 00:00:00";
        }else if(!isNull(dataInfo.toTime)){
            dataInfo.toTime = dataInfo.toTime.replace(/-/g, "/") + " 23:59:59";
        }

        getStatisticalData();
    });

    /**
     * 初始化echart
     * */
    function initChart() {
        myChart = echarts.init(document.getElementById('myArea'),"shine");
        var option = {
            title: {
                textStyle: {
                    fontSize: 25,
                    fontWeight: 'bolder',
                    color: '#333'          // 主标题文字颜色
                },
                subtextStyle: {
                    //fontSize: 12,
                    color: '#aaa'          // 副标题文字颜色
                },
                text: '错误日志统计信息(单位:条)',
            },
            tooltip: {
                trigger:'axis',
            },
            legend: {
            },
            xAxis: {
                data: [],
                axisLabel: {
                    textStyle: {
                        color: '#000',
                        fontSize: '14'
                    },
                }
            },
            yAxis: {
                axisLabel: {
                    textStyle: {
                        color: '#000',
                        fontSize: '14'
                    },
                }
            },
            series: [{
                type: 'bar',
                data: [],
            }],
            dataZoom: [{
                id: 'dataZoomX',
                //startValue: '2014-06-01',
                show: true,
                start: 100,
                end: 80
            },{
                type: 'inside'
            }],
        };

        myChart.setOption(option);
    }

    /**
     * 更新数据
     * */
    function updateOption(option) {
        myChart.setOption(option);

    }

    /**
     * 请求数据
     * */
    function getStatisticalData() {
        isOnline("sysAuditor");
        $.ajax({
            url:HOST.concat("/eStatiscal?token="+config.token),
            type:"get",
            dataType:"json",
            data:{
                name:dataInfo.name,
                fromTime:dataInfo.fromTime,
                toTime:dataInfo.toTime,
                moduleType:dataInfo.moduleType
            },
            success:function (res) {
                console.log(res);
                if(res.meta.state=="success"){
                    var data=res.data;
                    var resDateArray=data.resDateArray;
                    var resNumArray=data.resNumArray;

                    var fTime;
                    var tTime;
                    var moduleName;
                    var name;
                    if(data.fromTime==""){
                        fTime="任意";
                    }else{
                        fTime=(data.fromTime).substr(0,10);
                    }

                    if(data.toTime==""){
                        tTime="任意";
                    }else{
                        tTime=(data.toTime).substr(0,10);
                    }

                    if(data.name==""){
                        name="任意";
                    }else{
                        name=data.name;
                    }

                    if(data.moduleType==0||data.moduleType=="0"){
                        moduleName="登陆模块";
                    }else if(data.moduleType==1||data.moduleType=="1"){
                        moduleName="操作员模块";
                    }else if(data.moduleType==2||data.moduleType=="2"){
                        moduleName="业务审计员模块";
                    }else if(data.moduleType==3||data.moduleType=="3"){
                        moduleName="系统审计员模块";
                    }else if(data.moduleType==4||data.moduleType=="4"){
                        moduleName="系统管理员模块";
                    } else{
                        moduleName="任意";
                    }

                    var option={
                        tooltip : {
                            trigger: 'axis',
                            formatter:function (params) {
                                //console.log(params);
                                var dateTime=params[0].name;
                                var totalNum=params[0].value;
                                var num0=0;
                                var num1=0;
                                var num2=0;
                                var num3=0;
                                var num4=0;

                                //console.log(data.loginMap);

                                if(data.loginMap[dateTime]!=undefined){
                                    num0=data.loginMap[dateTime];
                                }
                                if(data.operatorMap[dateTime]!=undefined){
                                    num1=data.operatorMap[dateTime];
                                }
                                if(data.auditorMap[dateTime]!=undefined){
                                    num2=data.auditorMap[dateTime];
                                }
                                if(data.sysAuditorMap[dateTime]!=undefined){
                                    num3=data.sysAuditorMap[dateTime];
                                }
                                if(data.adminMap[dateTime]!=undefined){
                                    num4=data.adminMap[dateTime];
                                }

                                var msg= '日志日期：'+dateTime;

                                return [
                                    msg,
                                    '日志总数：'+totalNum+'条',
                                    '包含：',
                                    '系统登陆模块日志：'+num0+'条',
                                    '操作员模块日志：'+num1+'条',
                                    '业务审计员模块：'+num2+'条',
                                    '系统审计员模块：'+num3+'条',
                                    '系统管理员模块：'+num4+'条',
                                ].join('<br>')
                            }
                        },
                        title: {
                            textStyle: {
                                fontSize: 30,
                                fontWeight: 'bolder',
                                color: '#333'          // 主标题文字颜色
                            },
                            subtextStyle: {
                                fontSize: 16,
                                color: 'rgba(30,144,255,1)'          // 副标题文字颜色 #aaa
                            },
                            text: '错误日志统计信息(单位:条)',
                            subtext:'起始时间:'+fTime +"\n\n"
                                +"终止时间:"+tTime+"\n\n"
                                +"用户名: "+name+"\n\n"
                                +"模块类型:"+moduleName,
                        },
                        yAxis:{
                            axisLabel: {
                                textStyle: {
                                    color: '#000',
                                    fontSize: '14'
                                },
                            }
                        },
                        xAxis:{
                            data:resDateArray,
                            axisLabel: {
                                textStyle: {
                                    color: '#000',
                                    fontSize: '12'
                                },
                            }
                        },
                        grid:{
                            //show:true,
                            left:230,
                            top:80,
                            //borderWidth:2
                        },
                        series: [{
                            // name: '条数',
                            type: 'bar',
                            barWidth : 40,//柱图宽度
                            data: resNumArray,
                            itemStyle: {
                                normal: {
                                    label: {
                                        show: true, //开启显示
                                        position: 'top', //在上方显示
                                        textStyle: { //数值样式
                                            color: '#999999',
                                            fontSize: 14
                                        }
                                    }
                                }
                            },

                        }],
                        dataZoom: [
                            {
                                id: 'dataZoomX',
                            },{
                                type: 'inside',

                            }],
                    };
                    updateOption(option);
                }else if(res.meta.state=="failed"){
                    var option = {
                        title: {
                            //left:'center',
                            textStyle: {
                                fontSize: 30,
                                fontWeight: 'bolder',
                                color: '#333'          // 主标题文字颜色
                            },
                            subtextStyle: {
                                fontSize: 16,
                                color: 'rgba(255,0,0,1)'          // 副标题文字颜色 #aaa
                            },
                            text: '错误日志统计信息(单位:条)',
                            subtext:'无相关记录'
                        },
                        tooltip: {},
                        legend: {},
                        xAxis: {

                        },
                        yAxis: {
                            data:[],
                        },
                        series: [{
                            type: 'bar',
                            data: [],
                        }],
                    };
                    alert(res.meta.message);
                    updateOption(option);
                }
            },
            error:function () {
                alert("服务器异常");
            }

        });

    }



</script>





